// ParameterPackage.h: interface for the CParameterPackage class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PARAMETERPACKAGE_H__1CBA2E10_2BC8_43B1_AB6B_FCD5E33A63C2__INCLUDED_)
#define AFX_PARAMETERPACKAGE_H__1CBA2E10_2BC8_43B1_AB6B_FCD5E33A63C2__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "common.h"

typedef vector<LV_ITEM*> LVITEMLST;
typedef LVITEMLST::iterator LVITEM_ITERATOR;


class CParameterPackage  
{
public:
	virtual ~CParameterPackage();
	static CParameterPackage* Instance();

	static void Destroy();
	
public:
	void InitializeCS();
	void DeleteCS();

	// For multiple-thread postmessage
	LV_ITEM* CreateLvItem();

protected:
	CParameterPackage();

private:
	// Load special cn-words from config-files
	void LoadCnWords();
	void ReleaseList();

	
public:
	CStringArray	m_cnwordsLst; // special cnword

	FILEINFOLST 	m_vecFileLst; // file list
	
	HWND 			m_hViewLstWnd; // list view control window handle
	HWND 			m_hMsgWnd; // message window handle
	HWND			m_hSrchWnd; // search button window handle
	HWND			m_hCheckWnd; // check button window handle

	BOOL			m_bStopRun;	// thread run flag
	CRITICAL_SECTION m_cs;

	BOOL			m_bCreateXLSEngine;
	BOOL			m_bCreateDOCEngine;

private:
	static CParameterPackage* _instance;
	LVITEMLST		m_lvItemCache;
};

#endif // !defined(AFX_PARAMETERPACKAGE_H__1CBA2E10_2BC8_43B1_AB6B_FCD5E33A63C2__INCLUDED_)
